﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Model.Requisicoes
{
    public interface IRequisicaoService
    {
        Requisicao ObterPorNumeroRequisicao(Int64 numeroRequisicao);
        IList<Requisicao> ObterTodosPorUnidadeData(Int64 idUnidade, DateTime dataRequisicao);
        IList<Requisicao> ObterTodos();
        Requisicao Actualiza(Requisicao item);
        Requisicao Insere(Requisicao item);
        void Apaga(Requisicao item);

        LinhaRequisicao ObterLinhaPorRequisicaoRefeicaoProduto(Int64 numeroRequisicao, Int64 idRefeicaoContratada, Int64 idProduto);
        LinhaRequisicao ObterLinhaPorRequisicaoRefeicaoProduto(Requisicao requisicao, Int64 idRefeicaoContratada, Int64 idProduto);
        IList<LinhaRequisicao> ObterlinhasPorRequisicao(Int64 numeroRequisicao);
        IList<LinhaRequisicao> ObterlinhasPorRequisicao(Requisicao requisicao);
        IList<LinhaRequisicao> ObterlinhasPorRequisicaoRefeicao(Int64 numeroRequisicao, Int64 idRefeicaoContratada);
        IList<LinhaRequisicao> ObterlinhasPorRequisicaoRefeicao(Requisicao requisicao, Int64 idRefeicaoContratada);
        IList<LinhaRequisicao> ObterlinhasTodosProdutosPorRequisicaoRefeicao(Int64 numeroRequisicao, Int64 idRefeicaoContratada);
        IList<LinhaRequisicao> ObterlinhasTodosProdutosPorRequisicaoRefeicao(Requisicao requisicao, Int64 idRefeicaoContratada);
        LinhaRequisicao Actualiza(LinhaRequisicao item);
        IList<LinhaRequisicao> Actualiza(IList<LinhaRequisicao> items);
        LinhaRequisicao Insere(LinhaRequisicao item);
        void Apaga(LinhaRequisicao item);
    }
}
